package IUSECASE;

import IBO.IClient;
import IBO.ICodePostal;
import IBO.IIntervention;
import IGUI.Subscriber;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.GregorianCalendar;
import java.util.Vector;

public interface IUC_GestionIntervention extends Remote {
    
        //Gestion des Interventions
        public IIntervention creerIntervention( IClient client, String degre, String description, String rue, 
                                                String numero, String[] codePostal, GregorianCalendar dateDemande) 
                                                throws RemoteException;
        
        public IIntervention creerIntervention( IClient client, String degre, String description
                                                , String[] adresse, GregorianCalendar dateDemande) 
                                                throws RemoteException;
        
        public void modifierIntervention(   int idIntervention, String prioriteDemande, 
                                            String descriptionDemande, String rue, String numero, 
                                            String commune, String codePostal) throws RemoteException;
                
        Vector<IIntervention> listeInterventions() throws RemoteException;
    
        Vector<IIntervention> rechercherIntervention(int numeroIntervention) throws RemoteException;
    
        Vector<IIntervention> rechercherListeOuvertes(int numeroClient) throws RemoteException;
        
        Vector<IIntervention> rechercherListeCloturees(int numeroClient) throws RemoteException;
                
        Vector<IIntervention> rechercherListeComplete(int numeroClient) throws RemoteException;
          
        Vector<ICodePostal> rechercherCP(String codePostal) throws RemoteException;
        
        Vector<ICodePostal> rechercherCommune(String commune) throws RemoteException;
        
        //Gestion du statut d'une intervention
        public void annuler(IIntervention intervention) throws RemoteException;
        
        void subscribingListeInterventions(Subscriber subscriber) throws RemoteException;
        void unSubscribingListeInterventions(Subscriber subscriber) throws RemoteException;
        
}